package com.spring.pick2pick.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.stereotype.Repository;

import com.spring.pick2pick.common.PageHandler;
import com.spring.pick2pick.model.CommonItem;

/** 공통의 기능을 처리하는 Dao */
@Repository
public class CommonDao {
	
	@Autowired
	private SqlMapClientTemplate sqlMapClientTemplate;
	
	/** 레이아웃 수정 기능 */
	public int editCommon(CommonItem item) {
		return (Integer) sqlMapClientTemplate.update("common.editCommon", item);
	}
	
	/** 레이아웃 리스트 기능 */
	@SuppressWarnings("unchecked")
	public List<CommonItem> getCommonList() {
		return sqlMapClientTemplate.queryForList("common.getCommonList");
	}
	
	/** 기타 게시글관리 리스트 기능 */
	@SuppressWarnings("unchecked")
	public List<CommonItem> getEtcList(int page, int size) {
		
		int total = (Integer) sqlMapClientTemplate.queryForObject("common.getEtcListCount");
		
		// 페이징 처리 --> 한 페이지에 count개씩, 페이지번호는 10개 출력
		PageHandler.getInstance(page, total, size, 10);
		
		Map<String, Integer> map = new HashMap<String, Integer>(); 
		map.put("start", PageHandler.getInstance().getStartRec());
		map.put("end", PageHandler.getInstance().getPageArticleCount());
		
		List<CommonItem> list = sqlMapClientTemplate.queryForList("common.getEtcList", map);
		
		return list;
	}
	
	/**기타 게시글관리 추가 기능 */
	public int addEtc(CommonItem item) {
		return (Integer) sqlMapClientTemplate.insert("common.addEtc", item);
	}
	
	/** 기타 게시글관리 수정 기능 */
	public int editEtc(CommonItem item) {
		return (Integer) sqlMapClientTemplate.update("common.editEtc", item);
	}
	
	/** 기타 게시글관리 삭제 기능 */
	public int deleteEtc(CommonItem item) {
		return (Integer) sqlMapClientTemplate.delete("common.deleteEtc", item);
	}
	
	/** 기타 게시글관리 전시여부 기능 */
	public int editDisplay(CommonItem item) {
		return (Integer) sqlMapClientTemplate.update("common.editDisplay", item);
	}
	
	/** 기타 게시글관리 조회 기능 */
	public CommonItem getEtc(CommonItem item) {
		return (CommonItem) sqlMapClientTemplate.queryForObject("common.getEtc", item);
	}
	
	public String getCommonText(String commonTitle) {
		return (String) sqlMapClientTemplate.queryForObject("common.getCommonText", commonTitle);
	}
	
}
